package exception;
/**
 * throw关键字，用于主动抛出一个异常
 * 通常下述情况我们会主动抛出异常:
 * 1:程序出现了异常，但是该异常不应当在当前代码片段被处理时，可以抛出给上层调用者解决(责任制问题)
 * 2:程序可以运行，但是不满足业务场景，可以主动抛出异常给调用者。(本案例演示这种情况)
 */
public class ThrowDemo {
    /*
        永远不应当在main方法上添加throws
     */
    public static void main(String[] args) {
        Person person = new Person();
        /*
            当我们调用一个含有throws声明异常抛出的方法时，编译器要求我们必须处理该异常
            处理方式有两种:
            1:使用try-catch主动处理异常
            2:使用throws继续在当前方法上对外声明抛出
         */
        try {
            person.setAge(1000);//满足语法，但是不满足业务场景
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }

        System.out.println("此人年龄"+person.getAge());
    }
}
